The present invention relates to information handling systems, and more particularly to arbitration in personal computer systems.
Generally in computer systems and especially in personal computer systems, data are transferred between various elements such as a central processing unit (CPU), memory devices and direct memory access (DMA) control circuitry as well as expansion devices such as input/output (I/O) adapters, bus controllers (i.e., elements which can control the computer system) and bus slaves (i.e., elements which are controlled by bus controllers). The expansion devices are often interconnected via a system I/O bus. The DMA control circuitry is used to transfer information to and from memory devices without using the CPU; generally, once the CPU has provided the DMA control circuitry with control information such as the source location from where information is to be moved, the destination address of where the data information should go, and the size of the data information to be moved, the DMA control circuitry controls the transfer of the data information.
It is known to provide the DMA control circuitry with a plurality of channels, each channel being capable of independent data transfers. An example of the use of plural DMA channels is when information which is stored on a hard disk is backed up. In this case, the information is received from the hard disk and is provided directly to a backup device via the DMA control circuitry. While this backup is occurring, other memory transfers may be conducted using the other DMA channels. Often, in order to provide plural DMA channels, it is necessary to provide respective buffer circuits via which data information is transferred.
Often in computer systems it is necessary for expansion devices to arbitrate for ownership of the I/O bus of the computer system; i.e., to decide which expansion device may transfer information via the I/O bus. For the purposes of arbitration the DMA controller is treated as if it is an expansion device such that the DMA controller must arbitrate with other expansion devices in order to win permission to transfer information via the I/O bus. It is known to provide an arbiter which determines which expansion device may transfer information via the I/O bus, i.e., which allocates the bus. Such an arbiter serves as a central arbitration control point via which all arbitration for the I/O bus occurs.
The I/O bus operates in time divided units which are called bus cycles. Bus cycles of the I/O bus are divided into arbitration cycles and grant cycles. During arbitration cycles, expansion devices compete for ownership of the I/O bus. During grant cycles, a device which has won ownership of the bus, transfers information. Normally, during arbitration cycles, information is not transferred via the bus. However, it is known to perform refresh operations, in which the memory of the system is refreshed, during arbitration cycles. Whenever ownership of the bus is given to another device, even if it is during an arbitration cycle such as with a refresh operation, the bus is reallocated.
One way of initiating an arbitration cycle is by an expansion device which desires to transfer information via the bus generating a preempt signal. When the preempt signal is received by the expansion device which currently owns the bus it causes the device to relinquish its control so that another arbitration cycle may occur.